کپسوله سازی، مخفیسازی (Encapsulation)، یا لفافهبندی، به این مفهوم اشاره دارد که باید بعضی خصوصیات یا رفتارهای شیء را از دید دیگران پنهان کرد. فرض کنید شما به عنوان یک راننده میخواهید اتومبیل شخصی تان را روشن کنید و به محل کارتان عزیمت کنید سوییچ را بر میدارید، استارت میزنید و با فشار آوردن به پدالهای گاز و ترمز و چرخش فرمان و ... به محل کارتان خواهید رسید. در طول این مسیر در اتومبیل شما به عنوان یک شیء اعمال مختلفی در حال انجام بود. مثلاً لنت ترمز به دیسک چرخ برخورد میکرد و باعث کم شدن سرعت میشد یا شمعها شروع به جرقه زدن در زمانی بخصوصی میکردند. حال فرض کنید که عمل مخفی سازی وجود نداشت و شما مجبور بودید که جرقه زدن شمعها را کنترل میکردید و به سیستم سوخت رسانی در موقع لزوم دستور میدادید که سوخت را بداخل سیلندرها ارسال کند و... یا هیچگاه به مقصد نمیرسیدید! یا سالم نمیرسیدید!
عمل مخفی سازی باعث میشود که اشیاء بدون آنکه از چگونگی کارکرد یکدیگر اطلاع داشته باشند با هم کار کنند. موضوعات مرتبط: برنامه نویسی شی گرا چند ریختگی یا به عبارت دیگر Method OverLoading...ما را در سایت چند ریختگی یا به عبارت دیگر Method OverLoading دنبال میکنید
برچسب: نویسنده: بازدید: 229 تاريخ: چهارشنبه 29 آذر 1396 ساعت: 4:19
ما را در سایت چند ریختگی یا به عبارت دیگر Method OverLoading دنبال میکنید
برچسب: نویسنده: بازدید: 228 تاريخ: چهارشنبه 29 آذر 1396 ساعت: 4:19
یکی از جنبه های کلیدی زبان های برنامه نویسی شی گرا Objected Oriented Programming)OOP) از جمله #C بر پایه آن بنا شده است، مفهوم ارث بری یا Inheritance می باشد. ارث بری یعنی تولید کلاس هایی جدید که برخی از ویژگی های خود را از کلاس مادر Parent Class به ارث برده اند.حتی اگر کل چهارچوب کاری NET. بر پایه مفهوم ارث بری نباشد، ولی جمله معروف "همه چیز شی یا object است" از نتایج آن است. در زبان #C، حتی یک عدد ساده نمونه ای از یک کلاس است که خود از کلاس پایه System.object به ارث رفته است. اگرچه چهارچوب کاری NET.، این امکان را نیز برای شما فراهم کرده تا مقدار مورد نظر خود را مستقیما به یک عدد بدهید، بدون آن که نیاز داشته باشید تا نسخه جدیدی از کلاس Integer ایجاد کنید.
در کد فوق، در مرحله اول یک کلاس به نام Animal Class تعریف کرده ایم و دارای یک متد ساده جهت چاپ پیام خوش آمد گویی است. سپس کلاس Dog را ایجاد کرده و با قرار دادن یک : در مقابل آن، به C# اعلام کرده ایم این کلاس بایستی از کلاس Animal به ارث رود. نکته جالب در مورد مثال فوق این است که رابطه سگ و حیوان نیز در طبیعت به همین صورت می باشد، یعنی Dog زیرمجموعه ای از حیوانات است. اکنون بیایید روش به کار بردن کلاس ها را بررسی کنیم :
اگر کد مثال فوق را اجرا نمایید، خواهید دید با وجودیکه متد Greeting() را برای کلاس Dog تعریف نکرده ایم، اما چند ریختگی یا به عبارت دیگر Method OverLoading...ما را در سایت چند ریختگی یا به عبارت دیگر Method OverLoading دنبال میکنید
برچسب: نویسنده: بازدید: 238 تاريخ: چهارشنبه 29 آذر 1396 ساعت: 4:19
کلاس های انتزاعی (Abstract Class) در زبان C#، که با کلمه کلیدی abstract مشخص می شوند، کلاس های پایه و مادر در یک سلسله مراتب درختی کلاس ها می باشند. به عبارت دیگر این کلاس ها، کلاس مرجع بوده و بقیه کلاس ها به ترتیب از روی این کلاس به ارث می روند.
مسئله مهم در مورد کلاس های انتزاعی (Abstract) این است که شما نمی توانید یک نمونه یا شی از روی این کلاس ها بسازید، اگر این کار را انجام دهید، با خطای کامپایلر مواجه خواهید شد.
به جای عدم امکان ساخت شی از روی کلاس های انتزاعی، می توانید یک کلاس فرزند یا Subclass همانطور که در درس قبل آموزش دادیم، را از روی کلاس انتزاعی ساخته و سپس object های خود را از روی کلاس فرزند تولید کنید.اما چه زمانی ممکن است به کلاس های پایه نیاز داشته باشید؟ به بیان ساده و شفاف، شما می توانید یک پروژه را کامل کدنویسی کنید بدون این که نیازی به کلاس پایه داشته باشید. اما این نوع کلاس ها برای یک منظور خاص، بسیار مناسب بوده و آن کاربرد در چهارچوب کاری یا Framework ها می باشد. به همین دلیل است که چهارچوب کاری .NET پر از کلاس های انتزاعی است.در کد کلاس زیر، ما یک کلاس پایه به نام Four Legged Animal (چهارپایان) را ایجاد کرده و سپس کلاس دیگری به نام Dog تعریف نموده که از کلاس پایه به ارث می رود.
اگر کد مثال فوق را با مثال های درس قبل (آموزش مفهوم ارث بری در C#) مقایسه کن چند ریختگی یا به عبارت دیگر Method OverLoading...ما را در سایت چند ریختگی یا به عبارت دیگر Method OverLoading دنبال میکنید
برچسب: نویسنده: بازدید: 273 تاريخ: چهارشنبه 29 آذر 1396 ساعت: 4:19